"""
主动写一段错误代码，演示异常的出现
"""
import my_package.my_module1

# 通过open，读取一个不存在的文件
# f = open("D:/abc.txt", "r", encoding="UTF-8")

"""
演示捕获异常
"""
# 基本捕获语法
# try:
#     f = open("D:/abc.txt", "r", encoding="UTF-8")
# except:
#     print("出现了异常，因为文件不存在，我将open的模式，改为w模式去打开")
#     f = open("D:/abc.txt", "w", encoding="UTF-8")

# 捕获多个异常

# try:
#     1/0
#     print(name)
# except(NameError,ZeroDivisionError) as e:
#     print(f"出现了变量未定义 或者 除以0的异常错误{e}")

# 捕获所有异常
# try:
#     f = open("D:/123.txt", "r", encoding="UTF-8")
# except Exception as e:
#     print("出现异常了")
#     f = open("D:/123.txt", "w", encoding="UTF-8")
# else:
#     print("好高兴，没有异常。")
# finally:
#     print("我是finally，有没有异常我都要执行")
#     f.close()
"""
演示异常的传递性
"""

# # 定义一个出现异常的方法
# def func1():
#     print("func1 开始执行")
#     num = 1 / 0   #肯定有异常，除以0的异常
#
# # 定义一个无异常的方法，调用上面的方法
# def func2():
#     print("func2 开始执行")
#     func1()
#     print("func2 结束执行")
#
# # 定义一个方法，调用上面的方法
# def main():
#     try:
#         func2()
#     except Exception as e:
#         print(f"出现了异常了，异常的信息是：{e}")
# main()

"""
演示自定义模块
"""
# 创建一个包
# 导入自定义的包中的模块，并使用
# import my_package.my_module1
# import my_package.my_module2
# my_package.my_module1.info_print1()
# my_package.my_module2.info_print2()


# from my_package import my_module1
# from my_package import my_module2
# my_module1.info_print1()
# my_module2.info_print2()


# from my_package.my_module1 import info_print1
# from my_package.my_module2 import info_print2
# from my_package import my_module2
# info_print1()
# info_print2()

